{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Algorithm Comparison\n",
    "\n",
    "<strong>Date</strong> June 24th, 2019<br />\n",
    "<strong>Author</strong> Tyler Marrs\n",
    "\n",
    "This notebook is used to perform runtime comparisons between algorithms within the library. Currently, the following algorithms are compared:\n",
    "\n",
    "* Brute Force\n",
    "* STMP\n",
    "* STAMP\n",
    "* STOMP\n",
    "* SCRIMP++"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Environment Overview\n",
    "\n",
    "Here is the configuration of the system that the comparisons were ran."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Linux"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "No LSB modules are available.\n",
      "Distributor ID:\tUbuntu\n",
      "Description:\tUbuntu 18.04.2 LTS\n",
      "Release:\t18.04\n",
      "Codename:\tbionic\n"
     ]
    }
   ],
   "source": [
    "!lsb_release -a"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## CPU"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Architecture:        x86_64\n",
      "CPU op-mode(s):      32-bit, 64-bit\n",
      "Byte Order:          Little Endian\n",
      "CPU(s):              12\n",
      "On-line CPU(s) list: 0-11\n",
      "Thread(s) per core:  2\n",
      "Core(s) per socket:  6\n",
      "Socket(s):           1\n",
      "NUMA node(s):        1\n",
      "Vendor ID:           GenuineIntel\n",
      "CPU family:          6\n",
      "Model:               158\n",
      "Model name:          Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz\n",
      "Stepping:            10\n",
      "CPU MHz:             1200.085\n",
      "CPU max MHz:         4500.0000\n",
      "CPU min MHz:         800.0000\n",
      "BogoMIPS:            5184.00\n",
      "Virtualization:      VT-x\n",
      "L1d cache:           32K\n",
      "L1i cache:           32K\n",
      "L2 cache:            256K\n",
      "L3 cache:            12288K\n",
      "NUMA node0 CPU(s):   0-11\n",
      "Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp md_clear flush_l1d\n"
     ]
    }
   ],
   "source": [
    "!lscpu"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Memory"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RANGE                                  SIZE  STATE REMOVABLE   BLOCK\n",
      "0x0000000000000000-0x0000000007ffffff  128M online        no       0\n",
      "0x0000000008000000-0x000000002fffffff  640M online       yes     1-5\n",
      "0x0000000030000000-0x0000000037ffffff  128M online        no       6\n",
      "0x0000000038000000-0x000000005fffffff  640M online       yes    7-11\n",
      "0x0000000060000000-0x000000006fffffff  256M online        no   12-13\n",
      "0x0000000070000000-0x0000000077ffffff  128M online       yes      14\n",
      "0x0000000078000000-0x000000007fffffff  128M online        no      15\n",
      "0x0000000100000000-0x000000033fffffff    9G online       yes  32-103\n",
      "0x0000000340000000-0x0000000347ffffff  128M online        no     104\n",
      "0x0000000348000000-0x00000005a7ffffff  9.5G online       yes 105-180\n",
      "0x00000005a8000000-0x00000005b7ffffff  256M online        no 181-182\n",
      "0x00000005b8000000-0x00000005bfffffff  128M online       yes     183\n",
      "0x00000005c0000000-0x00000005c7ffffff  128M online        no     184\n",
      "0x00000005c8000000-0x00000005e7ffffff  512M online       yes 185-188\n",
      "0x00000005e8000000-0x00000005efffffff  128M online        no     189\n",
      "0x00000005f0000000-0x0000000607ffffff  384M online       yes 190-192\n",
      "0x0000000608000000-0x0000000617ffffff  256M online        no 193-194\n",
      "0x0000000618000000-0x000000062fffffff  384M online       yes 195-197\n",
      "0x0000000630000000-0x0000000637ffffff  128M online        no     198\n",
      "0x0000000638000000-0x000000063fffffff  128M online       yes     199\n",
      "0x0000000640000000-0x0000000647ffffff  128M online        no     200\n",
      "0x0000000648000000-0x000000064fffffff  128M online       yes     201\n",
      "0x0000000650000000-0x0000000657ffffff  128M online        no     202\n",
      "0x0000000658000000-0x000000066fffffff  384M online       yes 203-205\n",
      "0x0000000670000000-0x0000000677ffffff  128M online        no     206\n",
      "0x0000000678000000-0x0000000687ffffff  256M online       yes 207-208\n",
      "0x0000000688000000-0x000000068fffffff  128M online        no     209\n",
      "0x0000000690000000-0x00000006a7ffffff  384M online       yes 210-212\n",
      "0x00000006a8000000-0x00000006dfffffff  896M online        no 213-219\n",
      "0x00000006e0000000-0x00000006e7ffffff  128M online       yes     220\n",
      "0x00000006e8000000-0x00000006f7ffffff  256M online        no 221-222\n",
      "0x00000006f8000000-0x00000006ffffffff  128M online       yes     223\n",
      "0x0000000700000000-0x0000000707ffffff  128M online        no     224\n",
      "0x0000000708000000-0x0000000717ffffff  256M online       yes 225-226\n",
      "0x0000000718000000-0x0000000777ffffff  1.5G online        no 227-238\n",
      "0x0000000778000000-0x000000077fffffff  128M online       yes     239\n",
      "0x0000000780000000-0x0000000817ffffff  2.4G online        no 240-258\n",
      "0x0000000818000000-0x0000000837ffffff  512M online       yes 259-262\n",
      "0x0000000838000000-0x0000000877ffffff    1G online        no 263-270\n",
      "\n",
      "Memory block size:       128M\n",
      "Total online memory:    31.9G\n",
      "Total offline memory:      0B\n"
     ]
    }
   ],
   "source": [
    "!lsmem"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "from matplotlib import pyplot as plt\n",
    "\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Varying N\n",
    "\n",
    "This comparison varies the length of the time series. All window sizes are set to 2^5. Algorithms that allow for approximate solutions, STAMP and SCRIMP++, will compute the exact solutions."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import timeit"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/tyler/src/matrixprofile-ts/matrixprofile/scrimp.py:71: RuntimeWarning: invalid value encountered in sqrt\n",
      "  return np.absolute(np.sqrt(dist))\n"
     ]
    }
   ],
   "source": [
    "results = {\n",
    "    'Algorithm': [],\n",
    "    'N': [],\n",
    "    'Time (seconds)': [],\n",
    "}\n",
    "algorithms = [\n",
    "    'naiveMP',\n",
    "    'stamp',\n",
    "    'stmp',\n",
    "    'stomp',\n",
    "    'scrimp_plus_plus',\n",
    "]\n",
    "m = 2**2\n",
    "\n",
    "for algorithm in algorithms:\n",
    "    for i in range(2, 7):\n",
    "        n = 2**i\n",
    "        setup = [\n",
    "            'import numpy as np',\n",
    "            'from matrixprofile import matrixProfile',\n",
    "            'ts = np.random.uniform(size={})'.format(n),\n",
    "            'm = {}'.format(m),\n",
    "        ]\n",
    "        setup_code = ';'.join(setup)\n",
    "        \n",
    "        runtime_code = 'matrixProfile.{}(ts, m)'.format(algorithm)\n",
    "        if 'stamp' in algorithm:\n",
    "            runtime_code = 'matrixProfile.{}(ts, m, sampling=1)'.format(algorithm)\n",
    "\n",
    "        try:\n",
    "            result = timeit.timeit(stmt=runtime_code, setup=setup_code, number=1)\n",
    "        except:\n",
    "            result = np.nan\n",
    "        \n",
    "        results['Algorithm'].append(algorithm)\n",
    "        results['N'].append(n)\n",
    "        results['Time (seconds)'].append(result)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = pd.DataFrame(results)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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m+bz1lrj5POfACKttTHGGB9gCfC9tfalImMeBoYDvay1aeeYYzAwxVob5sxaRUSkfFMQFBERt1EQBMOAH4CWBV9vAW4ANp4vCBpjvgW6nWfa1dbaAQ6cuz3wK1DLWptS3NqLzDMdqG2tHXapc4iIiFS4+BAREZFyJRNYAAwlv8fe/ILvzsuRoHchBbeAfkL+St7lhMBewAjgT88aioiIFIeCoIiIuKOPgZfID4LjnHkiY4wv+cHz16K3gF7CPFcBnwG3WWu3llR9IiLinvSyGBERcUc/AXWAWsDqiw02xiw2xpw8z3+LL3CcDzAP2Ac8eKnFGmM6kL9yeZ+19odLnUdEROQ0rQiKiIjbsdZaY8xNRT5fbHy/Cw44B2OMF/AlkAHcY63Nu5RajTGh5L9U5jFr7YJLmUNERORsWhEUERG3ZK2NtdbGOvEU1wADgN7A8SIriN2LOc/fgBrAh0XmcGbdIiLiBvTWUBERERERETejFUERERERERE3oyAoIiIiIiLiZhQERURERERE3IyCoIiIiIiIiJspN+0jqlevbhs3buzqMkRERERERFwiJibmiLW2hiNjy00QbNy4MdHR0a4uQ0RERERExCWMMbsdHatbQ0VERERERNyMgqCIiIiIiIibURAUERERERFxM+XmGcFzyc7OJjExkczMTFeXIk5SsWJF6tevj5eXl6tLEREREREpM8p1EExMTCQgIIDGjRtjjHF1OVLCrLUkJyeTmJhIkyZNXF2OiIiIiEiZUa5vDc3MzKRatWoKgeWUMYZq1appxVdEREREpJjKdRAEFALLOf1+RURERESKr9wHQRERERERETmTgqCLfP311xhj2Lx5MwAJCQmEhoaW2Pz3338/cXFxALz44ouF35f0eUREREREpOxREHSROXPm0K1bNz7//PMSnzs3N5f/+7//o3Xr1sCZQVBERERERERB0AVOnjzJzz//zIcffnjOIJiens6QIUNo27YtQ4cOpWvXrkRHRwP5ATIsLIzQ0FDGjRtXeIy/vz/PPvssXbt2Zc2aNURERBAdHc3TTz9NRkYG7du356677gLyg+Lo0aNp06YNvXv3JiMjA4CIiAieeuoprrvuOkJCQli7di2DBw+mefPmTJgw4Qr8ZERERERE5EpQEHSBefPm0bdvX1q0aEFQUBDr1q07Y/8777xD1apV2bBhAxMnTiQmJgaApKQkxo0bx/Lly1m/fj1r165l3rx5AKSlpREaGspvv/1Gt27dCud6+eWX8fX1Zf369Xz66acAbNu2jUceeYTY2FiqVKnCV199VTje29ubVatW8dBDDzFo0CDefvttNm3axOzZs0lOTnb2j0ZERERERK4ABUEXmDNnDsOGDQNg2LBhzJkz54z9q1evLtwfGhpK27ZtAVi7di0RERHUqFGDChUqcNddd7Fq1SoAPD09ufXWWx06f5MmTWjfvj0AnTp1IiEhoXDfwIEDAQgLC6NNmzbUqVMHHx8fgoOD2bt376VftIiIiIiIlBrluqF8aZScnMzy5cvZtGkTxhhyc3MxxvDwww8XjrHWnvPY830PULFiRTw9PR2qwcfHp/Czp6dn4a2hRfd5eHicMc7Dw4OcnByH5hcRERERkdJNK4JX2Jdffsk999zD7t27SUhIYO/evTRp0oTExMTCMd26deOLL74AIC4ujo0bNwLQtWtXfvzxR44cOUJubi5z5syhR48eFz2nl5cX2dnZzrkgERERERFxuQstGp2LguAVNmfOHG655ZYzvrv11lvPeLPnww8/zOHDh2nbti2vvPIKbdu2JTAwkDp16vDSSy8RGRlJu3bt6NixI4MGDbroOR944AHatm1b+LIYEREREREpPzYfOMGdH/xWrGNMcZNjaRUeHm5Pv1nztPj4eEJCQlxU0aXLzc0lOzubihUrsmPHDm644Qa2bt2Kt7e3q0srlcrq71lERERE5HIcT8/iX0u38p/f9uDvU4ENk/vEWGvDHTlWzwiWQunp6URGRpKdnY21lhkzZigEioiIiIgIALl5ljlRe3j9+y2kZGRzV9dG/LVXC4ImOz6HgmApFBAQwNmrmyIiIiIiIr/tTGbygjji95+ga5MgJg9sQ0idysWeR0FQRERERESklEs6nsFLizez4I8k6gZW5K07O9A/rA7GmEuaT0FQRERERESklMrMzuWDVTt5Z+UO8qzl8Rua85ceTfH1dqx13PkoCIqIiIiIiJQy1lq+iz3IC4vi2Hs0g36htfnHjSE0CPIrkfkVBEVEREREREqRbQdTmbIgjtXbj9Cilj+f3d+Va5pVL9FzqI9gKfPuu+/y8ccfX9KxI0eOxM/Pj9TU1MLvnnjiCYwxHDlyBABPT0/at29PaGgot99+O+np6SVSt4iIiIiIXJ6UjGymLIil7xs/sSHxOJNvas2ix7uXeAgEBcFS56GHHuKee+655OObNWvGN998A0BeXh4rVqygXr16hft9fX1Zv349mzZtwtvbm3ffffeyaxYRERERkUt3uh1E5LSVzP4lgaGdG7BybCQjr21CBU/nRDYFQSdLSEggJCSE0aNH06ZNG3r37k1GRgYffPABnTt3pl27dtx6662FK3OTJ09m2rRpxMfH06VLlzPmadu2LQAxMTH06NGDTp060adPH/bv31847o477mDu3LkArFy5kmuvvZYKFc59B3D37t3Zvn27sy5dREREREQuIjrhKIPeXs34/22kaY1KLHi0Gy/eEkZQJef2EXebZwSnLIglLulEic7Zum5lJt3U5qLjtm3bxpw5c/jggw8YMmQIX331FYMHD2b06NEATJgwgQ8//JDHHnus8JiQkBCysrLYuXMnwcHBzJ07lyFDhpCdnc1jjz3GN998Q40aNZg7dy7PPPMMM2fOBKB58+Z88803HDt2jDlz5jB8+HAWL178p5pycnJYvHgxffv2LaGfhoiIiIiIOOpASiYvL45n3vokaleuyBvD2jOwXd1LbgdRXE4NgsaYvsAbgCfwf9bal8/a/1fgfiAHOAzcZ63dXbBvBDChYOjz1tqPnFmrMzVp0oT27dsD0KlTJxISEti0aRMTJkzg+PHjnDx5kj59+vzpuCFDhvDFF1/w9NNPM3fuXObOncuWLVvYtGkTvXr1AiA3N5c6deqccdzgwYP5/PPP+e2333jvvffO2JeRkVFYS/fu3Rk1apQzLllERERERM4hMzuXD1fv4u0V28nJszwa2YyHI5vi531l1+icdjZjjCfwNtALSATWGmPmW2vjigz7HQi31qYbY/4CvAoMNcYEAZOAcMACMQXHHrvUehxZuXMWHx+fws+enp5kZGQwcuRI5s2bR7t27Zg9ezYrV67803FDhw7l9ttvZ/DgwRhjaN68ORs3bqRNmzasWbPmvOcbNmwYHTt2ZMSIEXh4nHn37+lnBEVERERE5Mqx1rIs/hDPL4xjd3I6vVvXYkL/1jSsVjLtIIrLmc8IdgG2W2t3WmuzgM+BQUUHWGtXWGtPv7byV6B+wec+wFJr7dGC8LcUKFf3MKamplKnTh2ys7P59NNPzzmmadOmeHp6MnXqVIYOHQpAy5YtOXz4cGEQzM7OJjY29ozj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\n",
      "text/plain": [
       "<Figure size 1080x504 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df.pivot(index='N', columns='Algorithm', values='Time (seconds)').plot(title='Runtime Varying N\\n M = 2^2', figsize=(15,7))\n",
    "plt.ylabel('Seconds')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The brute force algorithm (naiveMP) is substantially slower. The next block of code excludes it for a better visual."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "results = {\n",
    "    'Algorithm': [],\n",
    "    'N': [],\n",
    "    'Time (seconds)': [],\n",
    "}\n",
    "algorithms = [\n",
    "    'stamp',\n",
    "    'stmp',\n",
    "    'stomp',\n",
    "    'scrimp_plus_plus',\n",
    "]\n",
    "m = 2**5\n",
    "\n",
    "for algorithm in algorithms:\n",
    "    for i in range(5, 16 + 1):\n",
    "        n = 2**i\n",
    "        setup = [\n",
    "            'import numpy as np',\n",
    "            'from matrixprofile import matrixProfile',\n",
    "            'ts = np.random.uniform(size={})'.format(n),\n",
    "            'm = {}'.format(m),\n",
    "        ]\n",
    "        setup_code = ';'.join(setup)\n",
    "        \n",
    "        runtime_code = 'matrixProfile.{}(ts, m)'.format(algorithm)\n",
    "        if 'stamp' in algorithm:\n",
    "            runtime_code = 'matrixProfile.{}(ts, m, sampling=1)'.format(algorithm)\n",
    "\n",
    "        try:\n",
    "            result = timeit.timeit(stmt=runtime_code, setup=setup_code, number=1)\n",
    "        except:\n",
    "            result = np.nan\n",
    "        \n",
    "        results['Algorithm'].append(algorithm)\n",
    "        results['N'].append(n)\n",
    "        results['Time (seconds)'].append(result)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = pd.DataFrame(results)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>Algorithm</th>\n",
       "      <th>scrimp_plus_plus</th>\n",
       "      <th>stamp</th>\n",
       "      <th>stmp</th>\n",
       "      <th>stomp</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>N</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>NaN</td>\n",
       "      <td>0.000560</td>\n",
       "      <td>0.000258</td>\n",
       "      <td>0.000378</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>64</th>\n",
       "      <td>0.002420</td>\n",
       "      <td>0.007444</td>\n",
       "      <td>0.006130</td>\n",
       "      <td>0.003235</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>128</th>\n",
       "      <td>0.006874</td>\n",
       "      <td>0.017429</td>\n",
       "      <td>0.018546</td>\n",
       "      <td>0.009105</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>256</th>\n",
       "      <td>0.017401</td>\n",
       "      <td>0.041694</td>\n",
       "      <td>0.046746</td>\n",
       "      <td>0.022254</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>512</th>\n",
       "      <td>0.037767</td>\n",
       "      <td>0.094860</td>\n",
       "      <td>0.104364</td>\n",
       "      <td>0.049020</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1024</th>\n",
       "      <td>0.090069</td>\n",
       "      <td>0.218113</td>\n",
       "      <td>0.229819</td>\n",
       "      <td>0.109860</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2048</th>\n",
       "      <td>0.199179</td>\n",
       "      <td>0.506619</td>\n",
       "      <td>0.488151</td>\n",
       "      <td>0.238634</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4096</th>\n",
       "      <td>0.494935</td>\n",
       "      <td>1.269767</td>\n",
       "      <td>1.205309</td>\n",
       "      <td>0.600159</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8192</th>\n",
       "      <td>1.626394</td>\n",
       "      <td>3.793990</td>\n",
       "      <td>4.354721</td>\n",
       "      <td>1.547446</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16384</th>\n",
       "      <td>4.216563</td>\n",
       "      <td>10.859488</td>\n",
       "      <td>13.262716</td>\n",
       "      <td>4.619090</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32768</th>\n",
       "      <td>15.098574</td>\n",
       "      <td>41.727105</td>\n",
       "      <td>42.270211</td>\n",
       "      <td>17.712673</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>65536</th>\n",
       "      <td>66.259776</td>\n",
       "      <td>174.973180</td>\n",
       "      <td>151.746938</td>\n",
       "      <td>76.356597</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Algorithm  scrimp_plus_plus       stamp        stmp      stomp\n",
       "N                                                             \n",
       "32                      NaN    0.000560    0.000258   0.000378\n",
       "64                 0.002420    0.007444    0.006130   0.003235\n",
       "128                0.006874    0.017429    0.018546   0.009105\n",
       "256                0.017401    0.041694    0.046746   0.022254\n",
       "512                0.037767    0.094860    0.104364   0.049020\n",
       "1024               0.090069    0.218113    0.229819   0.109860\n",
       "2048               0.199179    0.506619    0.488151   0.238634\n",
       "4096               0.494935    1.269767    1.205309   0.600159\n",
       "8192               1.626394    3.793990    4.354721   1.547446\n",
       "16384              4.216563   10.859488   13.262716   4.619090\n",
       "32768             15.098574   41.727105   42.270211  17.712673\n",
       "65536             66.259776  174.973180  151.746938  76.356597"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.pivot(index='N', columns='Algorithm', values='Time (seconds)')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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9xydO3emffv2lx1/sUxZ0bRpU3r37k1ycjJ33XVXlrKJiIiIiORqSfGw8C1Y9bmr7D34DdyUtYsw2UkTvrhB7dq1WbNmDUFBQQwePJjp06djjLno2KJFi17yON7e3hmvPTw8Mt57eHiQkpKS8dmFx77UubIytlChQqSlpWW8T0pKAqBkyZKsW7eO0NBQRo8ezZNPPnnJc1zteay1nDt3DnCVxSVLllCxYkV69uzJ5MmTL3seEREREZFcy1rY9CNENHMVv+ZPQ78/HSl+oPLnFrGxsRQpUoQePXowaNAgVqxYQWxsLKtWrQLg1KlT55W36zV16lQAli1bRvHixSlevPglx/74448kJSURFxfH4sWLM65G/q1q1apERUWRlpbG3r17WblyJQBHjx4lLS2Ne+65h7fffpu1a9deV6aqVauyZs2ajEzJyckA7N69m7Jly9KnTx+eeOKJK55HRERERCRXOrEXpjwE0x51rdXXZyF0Gg7e/o5Fyte3fTplw4YNvPTSS3h4eODl5cXYsWOx1vLcc89x5swZfH19WbBgQbadr2TJktxyyy0Zk6tcTrNmzejcuTN79uxhyJAhVKhQ4bxnDVu2bEm1atUICgoiMDCQxo0bA7B//34ef/zxjKt177333nVl6tOnD926daNZs2bcfvvtGVdAFy9ezAcffICXlxd+fn668iciIiIieUtaKvw5Hn79N2Ch3dtwc1/wdL56GWut0xmuWUhIiF29evV52zZv3kzdunUdSpTzQkNDGTFiBCEhIVccO3ToUPz8/Bg0aFCuyXQtCtrvWERERETyiNgo14QuB6KgZjvo/CGUrOLWUxpj1lhrs/QXb+frp4iIiIiISF529jQsfg9WjIEipeHeCVD/brjMXBxOUPnL4xYvXvyPbRMnTuTjjz8+b1vLli0ZPXp0tp67X79+/P777+dtGzBgwEUziYiIiIjkS3/9DLNfhPi90KQXtB0KviUdDnVxKn/50OOPP87jjz/u9vNkd5kUEREREckzTh2EueGwaQaUuQkenwdVWjid6rJU/kRERERERLIqLQ3WTIQFwyAlCcJeh5YDoFBhp5NdkcqfiIiIiIhIVhze7JrQZe+fULU1dBkJpWs6nSrLVP5EREREREQuJ/kMLBkBv38M3n7QbQwEP5zrJnS5Ei3ynkNGjhxJYmKi0zFERERERORq7FwM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\n",
      "text/plain": [
       "<Figure size 1080x504 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df.pivot(index='N', columns='Algorithm', values='Time (seconds)').plot(title='Runtime Varying N\\n M = 2^5', figsize=(15,7))\n",
    "plt.ylabel('Seconds')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Varying M\n",
    "\n",
    "This comparison varies the length of the window size. The time series length is set to 2^16. Algorithms that allow for approximate solutions, STAMP and SCRIMP++, will compute the exact solutions."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "results = {\n",
    "    'Algorithm': [],\n",
    "    'M': [],\n",
    "    'Time (seconds)': [],\n",
    "}\n",
    "algorithms = [\n",
    "    'stamp',\n",
    "    'stmp',\n",
    "    'stomp',\n",
    "    'scrimp_plus_plus',\n",
    "]\n",
    "n = 2**16\n",
    "\n",
    "for algorithm in algorithms:\n",
    "    for i in range(5, 16 + 1):\n",
    "        m = 2**i\n",
    "        setup = [\n",
    "            'import numpy as np',\n",
    "            'from matrixprofile import matrixProfile',\n",
    "            'ts = np.random.uniform(size={})'.format(n),\n",
    "            'm = {}'.format(m),\n",
    "        ]\n",
    "        setup_code = ';'.join(setup)\n",
    "        \n",
    "        runtime_code = 'matrixProfile.{}(ts, m)'.format(algorithm)\n",
    "        if 'stamp' in algorithm:\n",
    "            runtime_code = 'matrixProfile.{}(ts, m, sampling=1)'.format(algorithm)\n",
    "\n",
    "        try:\n",
    "            result = timeit.timeit(stmt=runtime_code, setup=setup_code, number=1)\n",
    "        except:\n",
    "            result = np.nan\n",
    "        \n",
    "        results['Algorithm'].append(algorithm)\n",
    "        results['M'].append(m)\n",
    "        results['Time (seconds)'].append(result)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = pd.DataFrame(results)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>Algorithm</th>\n",
       "      <th>scrimp_plus_plus</th>\n",
       "      <th>stamp</th>\n",
       "      <th>stmp</th>\n",
       "      <th>stomp</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>71.764426</td>\n",
       "      <td>153.072150</td>\n",
       "      <td>152.008031</td>\n",
       "      <td>73.321741</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>64</th>\n",
       "      <td>52.659284</td>\n",
       "      <td>153.320803</td>\n",
       "      <td>150.998736</td>\n",
       "      <td>78.245222</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>128</th>\n",
       "      <td>42.946720</td>\n",
       "      <td>153.121852</td>\n",
       "      <td>160.189583</td>\n",
       "      <td>77.185399</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>256</th>\n",
       "      <td>37.685006</td>\n",
       "      <td>153.585664</td>\n",
       "      <td>189.094520</td>\n",
       "      <td>76.843684</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>512</th>\n",
       "      <td>35.076449</td>\n",
       "      <td>156.287819</td>\n",
       "      <td>169.903316</td>\n",
       "      <td>77.710089</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1024</th>\n",
       "      <td>32.879146</td>\n",
       "      <td>149.571059</td>\n",
       "      <td>153.249620</td>\n",
       "      <td>78.927589</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2048</th>\n",
       "      <td>30.885337</td>\n",
       "      <td>148.068748</td>\n",
       "      <td>150.087723</td>\n",
       "      <td>75.934823</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4096</th>\n",
       "      <td>27.864315</td>\n",
       "      <td>140.942837</td>\n",
       "      <td>139.156057</td>\n",
       "      <td>70.070297</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8192</th>\n",
       "      <td>23.987461</td>\n",
       "      <td>129.746884</td>\n",
       "      <td>126.638202</td>\n",
       "      <td>56.340517</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16384</th>\n",
       "      <td>16.926680</td>\n",
       "      <td>105.222848</td>\n",
       "      <td>103.389813</td>\n",
       "      <td>42.545505</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32768</th>\n",
       "      <td>5.419254</td>\n",
       "      <td>57.358999</td>\n",
       "      <td>60.376919</td>\n",
       "      <td>18.346449</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>65536</th>\n",
       "      <td>NaN</td>\n",
       "      <td>0.001251</td>\n",
       "      <td>0.001155</td>\n",
       "      <td>0.002318</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Algorithm  scrimp_plus_plus       stamp        stmp      stomp\n",
       "M                                                             \n",
       "32                71.764426  153.072150  152.008031  73.321741\n",
       "64                52.659284  153.320803  150.998736  78.245222\n",
       "128               42.946720  153.121852  160.189583  77.185399\n",
       "256               37.685006  153.585664  189.094520  76.843684\n",
       "512               35.076449  156.287819  169.903316  77.710089\n",
       "1024              32.879146  149.571059  153.249620  78.927589\n",
       "2048              30.885337  148.068748  150.087723  75.934823\n",
       "4096              27.864315  140.942837  139.156057  70.070297\n",
       "8192              23.987461  129.746884  126.638202  56.340517\n",
       "16384             16.926680  105.222848  103.389813  42.545505\n",
       "32768              5.419254   57.358999   60.376919  18.346449\n",
       "65536                   NaN    0.001251    0.001155   0.002318"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.pivot(index='M', columns='Algorithm', values='Time (seconds)')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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DBlCYWEhAImJiTz++OMMGjSIbt26sW7dOsaMGUPXrl15+umnG+A34x4KfyIiIiIi4hJpaWkMGzaM6Oho2rRpw4YNG846//e//53WrVuzefNmnnnmGdLT0wHIzs5m2rRpfP7552zatIl169aRlpYGQH5+PnFxcXz99dfceOONlX0999xzBAYGsmnTJt59910Adu3axSOPPMK2bdto1aoVH3zwQWV7Pz8/VqxYwcMPP0xycjKvvPIKW7duZebMmeTk5Lj6V+MWCn8iIiIiIuISs2bN4q677gLgrrvuYtasWWedX7VqVeX5uLg4evToAcC6detITEykXbt2+Pj4MGHCBFasWAGAt7c3d9xxR63u36lTJ3r16gXAtddeS1ZWVuW5UaNGARAfH09sbCzh4eH4+/sTFRXF/v37L/+hGzFt8i4iIiIiIvUuJyeHzz//nK1bt2KMoaysDGMMP/vZzyrbWGurvbam4wABAQF4e3vXqgZ/f//Kz97e3pXTPque8/LyOqudl5cXpaWlteq/qfGIkb+S8hLyS/LdXYaIiIiIiDjNnTuXe+65h71795KVlcX+/fvp1KkTBw4cqGxz4403kpqaCsD27dvZsmULAP379+eLL77g2LFjlJWVMWvWLG666aaL3tPX15eSkhLXPJAH8IjwN3PrTMYtGOfuMkRERERExGnWrFncfvvtZx274447zlqR82c/+xlHjx6lR48ePP/88/To0YPQ0FDCw8P5y1/+QlJSEj179qRPnz4kJydf9J4PPfQQPXr0qFzwRc5mLjSk2tglJCTY9evX84c1f2BOxhzSJ6bj5+3n7rJERERERBrcjh076Natm7vLuCRlZWWUlJQQEBDA7t27ufnmm8nIyMDPT/+mr051f2NjTLq1NqE213vEO39nys4AkFOYQ3hwuJurERERERGR2igoKCApKYmSkhKstcyYMUPBz4U8IvwVlxUDcKzwmMKfiIiIiEgTERISUrmvn7ieR7zzVzHyd6zwmJsrERERERERaZw8IvxVjvwVKfyJiIiIiIhUxyPCX9V3/kREREREROR8HhH+qr7zJyIiIiIiIufziPCnkT8REREREZEL84jwV1yukT8RERERkaYqOzubsWPHNvh9s7KyiIuLc/l9Zs6cyc9//nOX3+diPCP8adqniIiIiEiTVFpaSkREBHPnznV3KR7PI/b5q5z2WZSDtRZjjJsrEhERERFxn+kLtrE9O7de++we0ZLf3xZ7wTb5+fmkpKRw4MABysrKeOaZZ4iKiuIXv/gF+fn5+Pv789lnn/HBBx+wcOFCioqKyM/P5/XXX2fkyJFs3bqVmTNnkpaWRllZGVu3buVXv/oVxcXFvP322/j7+7No0SLatGlDYmIivXr1Yu3ateTm5vL666/Tr1+/aut69tln2b17NwcPHmT//v38+te/ZsqUKWe1mTlzJuvXr+fll18GYOTIkUydOpWBAwfywAMPsH79eowx3H///Tz++OPV3qc2NU2ePJmRI0dWjnQGBweTl5fHoUOHuPPOO8nNzaW0tJQZM2YwcODAWv1tasujwl9haSEFpQW08G3h5opERERERJqfxYsXExERwcKFCwE4deoUvXv3Zvbs2fTt25fc3FwCAwMBWLNmDZs3b6ZNmzZkZWWd1c/WrVvZuHEjRUVFdOnSheeff56NGzfy+OOP89Zbb/HLX/4ScITNL7/8khUrVnD//fezdevWGmvbvHkzX331Ffn5+fTu3ZsRI0bU6pk2bdrEwYMHK/s+efLkBdtfSk1VvffeewwdOpTf/va3lJWVUVBQUKvrLoVHhL/ismLaBbbjaOFRcgpzFP5EREREpFm72Aidq8THxzN16lSmTZvGyJEjadWqFeHh4fTt2xeAli1bVrYdPHgwbdq0qbafpKQkQkJCCAkJITQ0lNtuu62y/82bN1e2Gz9+PACDBg0iNzeXkydP0qpVq2r7TE5OJjAwkMDAQJKSkli7di29evW66DNFRUXx3Xff8eijjzJixAiGDBlywfbV1VQbffv25f7776ekpITRo0fXqrZL1eTf+bPWcqbsDBHBEYDe+xMRERERcZfo6GjS09OJj4/nqaee4qOPPqrxlawWLWoesPH396/87OXlVfndy8uL0tLSynPn9n2h178u1tbHx4fy8vLK70VFRQC0bt2ab775hsTERF555RUefPDBGu9xqfex1lJc7Fi/ZNCgQaxYsYIOHTowadIk3nrrrQve53I0+fBXUl4CQEQLhT8REREREXfKzs4mKCiIiRMnMnXqVL766iuys7NZt24dAKdPnz4rvNXV7NmzAVi1ahWhoaGEhobW2HbevHkUFRWRk5PD8uXLK0cjK0RGRrJp0ybKy8vZv38/a9euBeDYsWOUl5dzxx13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2jSuvfZabrnlFtauXUtiYiJRUVHMnz8fcGwEn5yczLBhw4iJiWH69OnufCyP4ePuAuqqummfof6hRLaMZPPRzW6qSkRERETEfZ5f+zzfHv+2Xvu8ps01TOs37YJtFi9eTEREBAsXLgTg1KlTvPHGGyxbtoywsDDAERATExN5/vnnuf3223n66adZunQp27dv595772XUqFEArF27lq1btxIUFETfvn0ZMWIECQkJ9fpMzY1HjPydO+0TID4sni3HtmCtdUNVIiIiIiLNT3x8PJ9++inTpk1j5cqVhIaGntfGz8+PYcOGVba/6aab8PX1JT4+nqysrMp2gwcPpm3btgQGBjJmzBhWrVrVUI/hsZr+yF/5Gfy8/M47Ht8ungXfLeD7/O8JDw53Q2UiIiIiIu5xsRE6V4mOjiY9PZ1Fixbx1FNPMWTIkPPa+Pr6YowBwMvLC39//8rPpaWlle0q2tT0XS6dx4789QjrAcDmY5r6KSIiIiLSELKzswkKCmLixIlMnTqVDRs2EBISwunTpy+5r6VLl3L8+HEKCwtJS0tjwIABLqi4eWn6I3/VvPMHEN06Gj8vP7Yc3cLQyKFuqExEREREpHnZsmULTzzxBF5eXvj6+jJjxgzWrFnD8OHDCQ8PZ9myZbXu68Ybb2TSpElkZmZy9913632/etCkw5/FUm7Lqx358/X2pVvbblrxU0RERESkgQwdOpShQ88eeElISODRRx+t/J6X98Ne3M8+++xZbauea9++PS+//LJrCm2mmvS0z4rFXKoLf+BY9GV7znZKyksasiwREREREZFGp2mHPxzhr7ppn+AIf0VlRWSeyGzIskREREREpA4mT56sUT8XaNLhr9yWAxcY+WsXD2izdxERERERkSYd/iqmfdY08ndV8FW09m+tzd5FRERERKTZa9rhjwu/82eMIb5dvEb+RERERESk2WvS4e9i0z7B8d7fnlN7OF186XuLiIiIiIiIeAqPCH9BvkE1tukR1gOLZeuxrQ1VloiIiIiIOL344osUFBS4uwzBU8KfT83hL65dHKBFX0RERERE3EHhr/HwjPB3gZG/ln4tiWwZyZajCn8iIiIiIq6Un5/PiBEj6NmzJ3FxcUyfPp3s7GySkpJISkoCYNasWcTHxxMXF8e0adMqrw0ODmbatGlce+213HLLLaxdu5bExESioqKYP38+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\n",
      "text/plain": [
       "<Figure size 1080x504 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df.pivot(index='M', columns='Algorithm', values='Time (seconds)').plot(title='Runtime Varying M\\n N = 2^16', figsize=(15,7))\n",
    "plt.ylabel('Seconds')\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
